#-*- coding: utf-8 -*-

# 此為Python的內嵌函式、enclosing scope、closure閉包的示範

def outer():
	x = 10
	
	def inner():
		print "inner function print: " + str( x )		# x為一個free variable自由變數
		return x
		
	inner()								# 呼叫並執行inner()函式
	x = 20								# 重新指派x自由變數
	return inner						# 回傳inner函式物件
	
result = outer()						# result現在參照到一個inner()函式物件
print "result is: " + str( result )

var = result()							# var現在也參照到inner()函式物件的回傳值
print "var is: " + str( var )			# 印出 20